﻿using System;
using System.Drawing;
using System.Collections.Generic;

namespace OOXMLGenerator.DataStructure
{
    /// <summary>
    /// Represents the header structure of the MSOffice template
    /// </summary>
    internal class StructureHeader
    {
        #region Public Members ...
        /// <summary>
        /// Header's Logo image
        /// </summary>
        public Image Logo { get; set; }
        /// <summary>
        /// Header's attributes:
        /// - dictionary key - represents the a header label
        /// - dictionary value - represents label's value
        /// </summary>
        public Dictionary<string, string> Attributes { get; set; }
        #endregion

        #region Constructors ...

        /// <summary>
        /// Empty Constructor - initializes a new instance of the StructureHeader Class.
        /// Attributes are initialized as empty Dictionary.
        /// </summary>
        public StructureHeader()
        {
            Attributes = new Dictionary<string, string>();
        }
        /// <summary>
        /// Initializes a new instance of the StructureHeader Class based on given parameters: image logo and attributes dictionary.
        /// </summary>
        /// <param name="logo">Image of header's logo</param>
        /// <param name="attributes">Header's attributes: 
        ///     dictionary key - represents the a header label; 
        ///     dictionary value - represents label's value</param>
        public StructureHeader(Image logo, Dictionary<string, string> attributes)
        {
            Logo = logo;
            Attributes = attributes;
        }
        /// <summary>
        /// Initializes a new instance of the StructureHeader Class creating a copy of given StructureHeader parametere.
        /// </summary>
        /// <param name="structureHeader"></param>
        public StructureHeader(StructureHeader structureHeader)
        {
            Logo = structureHeader.Logo;
            Attributes = new Dictionary<string, string>(structureHeader.Attributes);
        }

        #endregion
    }
}
